package es.nadalgoyo.frikiquest.control;

import java.util.ArrayList;

import android.content.Context;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import es.nadalgoyo.frikiquest.R;
import es.nadalgoyo.frikiquest.action.ActionCuestion;
import es.nadalgoyo.frikiquest.vo.parcelable.RespuestaParcelable;

public class RespuestaControl extends AbstractControl {

	private RadioGroup group;

	private int idOK, idSelected;
	
	private boolean clicked = false;

	public boolean isClicked() {
		return clicked;
	}

	public RespuestaControl(Context context) {
		super(context);
	}

	public RespuestaControl(Context context, AttributeSet att) {
		super(context, att);
	}

	@Override
	public void inicializar() {

		String infService = Context.LAYOUT_INFLATER_SERVICE;
		LayoutInflater li = (LayoutInflater) getContext().getSystemService(
				infService);

		li.inflate(R.layout.respuesta, this, true);

		group = (RadioGroup) findViewById(R.id.radiorespuestas);

		group.setOrientation(RadioGroup.VERTICAL);
		group.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
				LayoutParams.WRAP_CONTENT));

		Bundle bundle = getActivity().getIntent().getExtras();

		createRadios(bundle.getParcelableArrayList(ActionCuestion.ID_RESPUESTA));

	}

	public void setFontText(Typeface typeface) {
		for (int i = 0; i < group.getChildCount(); i++) {
			View view = group.getChildAt(i);

			if (view instanceof RadioButton) {
				RadioButton radio = (RadioButton) view;
				radio.setTextAppearance(getContext(), R.style.Respuesta);
				radio.setTypeface(typeface);
			}
		}
	}

	private void createRadios(ArrayList<Parcelable> respuestas) {
		for (Parcelable respuesta : respuestas) {
			if (respuesta instanceof RespuestaParcelable) {
				RespuestaParcelable res = (RespuestaParcelable) respuesta;

				final RadioButton radio = new RadioButton(getContext());

				radio.setLayoutParams(new LayoutParams(
						LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

				group.addView(radio);
				radio.setText(res.getTexto());
				if (res.isOK())
					idOK = radio.getId();

				radio.setOnClickListener(new OnClickListener() {

					@Override
					public void onClick(View v) {
						clicked = true;
						idSelected = radio.getId();
					}
				});
			}
		}
	}

	public boolean isOK() {
		if (idOK == idSelected)
			return true;
		else
			return false;
	}

}